package org.hgvc.webapp.ets.spring.service;

import java.io.Serializable;
import java.util.List;

import org.hgvc.webapp.ets.bo.Agent;
import org.hgvc.webapp.ets.bo.Branch;
import org.hgvc.webapp.ets.bo.Calendar;
import org.hgvc.webapp.ets.bo.Country;
import org.hgvc.webapp.ets.bo.Currency;
import org.hgvc.webapp.ets.bo.CurrencyRate;
import org.hgvc.webapp.ets.bo.DocControl;
import org.hgvc.webapp.ets.bo.DownPaymentInstallmentSchema;
import org.hgvc.webapp.ets.bo.HotelRciResort;
import org.hgvc.webapp.ets.bo.HotelResort;
import org.hgvc.webapp.ets.bo.HotelRoomType;
import org.hgvc.webapp.ets.bo.InstallmentSchema;
import org.hgvc.webapp.ets.bo.Nationality;
import org.hgvc.webapp.ets.bo.PaymentMode;
import org.hgvc.webapp.ets.bo.Product;
import org.hgvc.webapp.ets.bo.Race;
import org.hgvc.webapp.ets.bo.Remark;
import org.hgvc.webapp.ets.bo.Salutation;
import org.hgvc.webapp.ets.bo.State;
import org.hgvc.webapp.ets.bo.Status;
import org.hgvc.webapp.ets.bo.Territory;
import org.hgvc.webapp.ets.bo.TransactionType;
import org.jocsb.base.exception.BaseException;


public interface MasterSetupService extends Serializable {
	public List<Country> getCountryList()throws BaseException;
	public void saveCountry(Country country)throws BaseException;
	public void updateCountry(Country country)throws BaseException;
	public void deleteCountries(List<Country> countries)throws BaseException;
	
	public List<State> getStateList(String countryId)throws BaseException;
	public void saveState(State state,Country countryId)throws BaseException;
	public void updateState(State state,Country countryId)throws BaseException;
	public void deleteStates(List<State> states)throws BaseException;
	
	public List<Race> getRaceList()throws BaseException;
	public void saveRace(Race race)throws BaseException;
	public void updateRace(Race race)throws BaseException;
	public void deleteRaces(List<Race> races)throws BaseException;
	
	public List<Branch> getBranchList()throws BaseException;
	public void saveBranch(Branch branch)throws BaseException;
	public void updateBranch(Branch branch)throws BaseException;
	public void deleteBranches(List<Branch> branches)throws BaseException;
	
	public List<Salutation> getSalutationList()throws BaseException;
	public void saveSalutation(Salutation salutation)throws BaseException;
	public void updateSalutation(Salutation salutation)throws BaseException;
	public void deleteSalutation(List<Salutation> salutations)throws BaseException;
	
	public List<Status> getStatusList()throws BaseException;
	public void saveStatus(Status status)throws BaseException;
	public void updateStatus(Status status)throws BaseException;
	public void deleteStatuses(List<Status> statuses)throws BaseException;
	
	public List<TransactionType> getTransactionTypeList()throws BaseException;
	public void saveTransactionType(TransactionType transactionType)throws BaseException;
	public void updateTransactionType(TransactionType transactionType)throws BaseException;
	public void deleteTransactionTypes(List<TransactionType> transactionTypes)throws BaseException;
	
	public List<Product> getProductList()throws BaseException;
	public void saveProduct(Product product)throws BaseException;
	public void updateProduct(Product product)throws BaseException;
	public void deleteProducts(List<Product> products)throws BaseException;
	
	public List<HotelResort> getHotelResortList()throws BaseException;
	public void saveHotelResort(HotelResort hotelResort)throws BaseException;
	public void updateHotelResort(HotelResort hotelResort)throws BaseException;
	public void deleteHotelResorts(List<HotelResort> hotelResorts)throws BaseException;
	
	public List<HotelRciResort> getHotelRciResortList()throws BaseException;
	public void saveHotelRciResort(HotelRciResort hotelRciResort)throws BaseException;
	public void updateHotelRciResort(HotelRciResort hotelRciResort)throws BaseException;
	public void deleteHotelRciResorts(List<HotelRciResort> hotelRciResorts)throws BaseException;
	
	public List<HotelRoomType> getHotelRoomTypeList()throws BaseException;
	public void saveHotelRoomType(HotelRoomType roomtype)throws BaseException;
	public void updateHotelRoomType(HotelRoomType roomtype)throws BaseException;
	public void deleteHotelRoomTypes(List<HotelRoomType> roomtypes)throws BaseException;
	
	public List<Currency> getCurrencyList()throws BaseException;
	public void saveCurrency(Currency currency)throws BaseException;
	public void updateCurrency(Currency currency)throws BaseException;
	public void deleteCurrencies(List<Currency> currencies)throws BaseException;
	
	public List<Agent> getAgentList()throws BaseException;
	public void saveAgent(Agent agent)throws BaseException;
	public void updateAgent(Agent agent)throws BaseException;
	public void deleteAgents(List<Agent> agents)throws BaseException;
	
	public List<Territory> getTerritoryList(String stateId)throws BaseException;
	public void saveTerritory(Territory territory,String stateId)throws BaseException;
	public void updateTerritory(Territory territory,String stateId)throws BaseException;
	public void deleteTerritory(List<Territory> territorries)throws BaseException;
	public List<Territory> getTerritoryList()throws BaseException;
	
	public List<CurrencyRate> getCurrencyRateListByCurrencyId(String currencyId)throws BaseException;
	public void saveCurrencyRate(CurrencyRate currencyRate)throws BaseException;
	public void updateCurrencyRate(CurrencyRate currencyRate)throws BaseException;
	public void deleteCurrencyRates(List<CurrencyRate> currencyRates)throws BaseException;
	
	public List<DocControl> getDocControlList()throws BaseException;
	public void saveDocControl(DocControl docControl)throws BaseException;
	public void updateDocControl(DocControl docControl)throws BaseException;
	public void deleteDocControls(List<DocControl> docControls)throws BaseException;
	public DocControl getDocControlByType(String type)throws BaseException;
	
	public List<PaymentMode> getPaymentModeList()throws BaseException;
	
	public List<Calendar> getCalendarList()throws BaseException;
	public void saveCalendar(Calendar calendar)throws BaseException;
	public void updateCalendar(Calendar calendar)throws BaseException;
	public void deleteCalendar(List<Calendar> calendars)throws BaseException;
	
	public List<InstallmentSchema> getInstallmentSchemaList()throws BaseException;
	public void saveInstallmentSchema(InstallmentSchema schema)throws BaseException;
	public void updateInstallmentSchema(InstallmentSchema schema)throws BaseException;
	public void deleteInstallmentSchema(List<InstallmentSchema> schema)throws BaseException;
	
	public void deleteDownPaymentInstallmentSchema(List<DownPaymentInstallmentSchema> schemas)throws BaseException;
	public void updateDownPaymentInstallmentSchema(DownPaymentInstallmentSchema schema)throws BaseException;
	public void saveDownPaymentInstallmentSchema(DownPaymentInstallmentSchema schema)throws BaseException;
	public List<DownPaymentInstallmentSchema> getDownPaymentInstallmentSchemaList()throws BaseException;
	
	public List<Remark> getRemarkList()throws BaseException;
	public void saveRemark(Remark remark)throws BaseException;
	public void updateRemark(Remark remark)throws BaseException;
	public void deleteRemark(List<Remark> deleteList)throws BaseException;
	
	public List<Nationality> getNationalityList()throws BaseException;
	public void saveNationality(Nationality nationality)throws BaseException;
	public void updateNationality(Nationality nationality)throws BaseException;
	public void deleteNationality(List<Nationality> deleteList)throws BaseException;
}


